package com.ruoyi.report.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 报定时任务对象 report_schedule
 * 
 * @author ruoyi
 * @date 2025-06-17
 */
public class ReportSchedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务ID */
    private Long scheduleId;

    /** 配置ID */
    @Excel(name = "配置ID")
    private Long configId;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String scheduleName;

    /** Cron表达式 */
    @Excel(name = "Cron表达式")
    private String cronExpression;

    /** 接收人(多个用逗号分隔) */
    @Excel(name = "接收人(多个用逗号分隔)")
    private String recipients;

    /** 是否发送邮件(0-否 1-是) */
    @Excel(name = "是否发送邮件(0-否 1-是)")
    private String sendEmail;

    /** 最后执行时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "最后执行时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastExecuteTime;

    /** 下次执行时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "下次执行时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nextExecuteTime;

    /** 状态(0-启用 1-停用) */
    @Excel(name = "状态(0-启用 1-停用)")
    private String status;

    public void setScheduleId(Long scheduleId) 
    {
        this.scheduleId = scheduleId;
    }

    public Long getScheduleId() 
    {
        return scheduleId;
    }

    public void setConfigId(Long configId) 
    {
        this.configId = configId;
    }

    public Long getConfigId() 
    {
        return configId;
    }

    public void setScheduleName(String scheduleName) 
    {
        this.scheduleName = scheduleName;
    }

    public String getScheduleName() 
    {
        return scheduleName;
    }

    public void setCronExpression(String cronExpression) 
    {
        this.cronExpression = cronExpression;
    }

    public String getCronExpression() 
    {
        return cronExpression;
    }

    public void setRecipients(String recipients) 
    {
        this.recipients = recipients;
    }

    public String getRecipients() 
    {
        return recipients;
    }

    public void setSendEmail(String sendEmail) 
    {
        this.sendEmail = sendEmail;
    }

    public String getSendEmail() 
    {
        return sendEmail;
    }

    public void setLastExecuteTime(Date lastExecuteTime) 
    {
        this.lastExecuteTime = lastExecuteTime;
    }

    public Date getLastExecuteTime() 
    {
        return lastExecuteTime;
    }

    public void setNextExecuteTime(Date nextExecuteTime) 
    {
        this.nextExecuteTime = nextExecuteTime;
    }

    public Date getNextExecuteTime() 
    {
        return nextExecuteTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("scheduleId", getScheduleId())
            .append("configId", getConfigId())
            .append("scheduleName", getScheduleName())
            .append("cronExpression", getCronExpression())
            .append("recipients", getRecipients())
            .append("sendEmail", getSendEmail())
            .append("lastExecuteTime", getLastExecuteTime())
            .append("nextExecuteTime", getNextExecuteTime())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
